package com.example.prove;

import com.molinari.androidstructure.service.wallpaper.BaseWallpaperService;

import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.SystemClock;
import android.view.SurfaceHolder;

public class MyWallpaperService extends BaseWallpaperService{


	//centro dello schermo
	 private float mCenterX,mCenterY;
	 
	 //paint per disegnare
	 private final Paint mPaint = new Paint();
	 
	 
	 
	@Override
	protected void draw() {
		final SurfaceHolder holder = getEngine().getSurfaceHolder();
		Canvas c = null;
		try {
			// blocco il canvas per disegnarci
			c = holder.lockCanvas();
			if (c != null) {
				// qui mettiamo quello che vogliamo disegnare
				drawFlag(c, 150);
			}
		} finally {
			if (c != null)
				holder.unlockCanvasAndPost(c);
		}
	}

	// disegnamo facendo seguire un moto circolare
	void drawFlag(Canvas c, int r) {
		// tempo attuale, per sapere quanto tempo è passato dalla creazione
		// dell'engine e fare animazioni dipendenti dal tempo
		long now = SystemClock.elapsedRealtime();
		c.save();
		// traslazione delle coordinate nel centro
		c.translate(mCenterX, mCenterY);
		// il canvas tratterrebbe tutto quello disegnato fin ora, creando una
		// scia, quindi lo riempiamo di nero per poi ridisegnare sopra
		c.drawColor(Color.BLACK);
		// disegno il bitmap su una circonferenza di raggio r e centro dello
		// schermo
		float rot = ((float) (now - 100)) / 1000;
		float newxt = (float) (Math.cos(rot) * r);
		float newyt = (float) (Math.sin(rot) * r);
		//bandiera dalle risorse
		 Resources res = getResources();
		 Bitmap italyBitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
		c.drawBitmap(italyBitmap, newxt, newyt, mPaint);
		c.restore();
	}
	
}
